layui.use(['table', 'layer'], function () {
    var layer = parent.layer === undefined ? layui.layer : top.layer,
        $ = layui.jquery,
        table = layui.table;

    /**
     * 加载数据表格
     */
    var tableIns = table.render({
        id: 'productTable',
        // 容器元素的ID属性值
        elem: '#productList',
        // 容器的高度 full-差值
        height: 'full-125',
        //单元格最小的宽度
        cellMinWidth: 95,
        // 访问数据的URL（后台的数据接口）
        url: ctx + '/product/list',//数据接口
// 开启分页
        page: true,
// 默认每页显示的数量
        limit: 5,
// 每页页数的可选项
        limits: [10, 20, 30, 40, 50],
// 开启头部工具栏
        toolbar: '#toolbarDemo',
// 表头
        cols: [[
// field：要求field属性值与返回的数据中对应的属性字段名一致
            // title：设置列的标题
            // sort：是否允许排序（默认：false）
            // fixed：固定列
            {type: 'checkbox', fixed: 'center'},
            {field: 'proId', title: '商品编号', sort: true, fixed: 'left'},
            {field: 'proName', title: '商品名称', align: 'center'},
            {field: 'proPrice', title: '商品价格', align: 'center'},

            {field: 'shopName', title: '店铺名称', align: 'center'},
            {field: 'proVolume', title: '商品销量', align: 'center'},
            {field: 'proNumber', title: '商品库存', align: 'center'},
            {
                field: 'proClassid', title: '商品分类', align: 'center', templet: function (d) {
                    // 调用函数，返回格式化的结果
                    return formatproClassid(d.proClassid);
                }
            },

            {
                field: 'proState', title: '商品状态', align: 'center', templet: function (d) {
                    // 调用函数，返回格式化的结果
                    return formatproState(d.proState);
                }
            },

            {
                field: 'auditState', title: '审核状态', align: 'center', templet: function (d) {
                    // 调用函数，返回格式化的结果
                    return formatauditState(d.auditState);
                }
            },




            {title: '操作', templet: '#productListBar', fixed: 'right', align: 'center', minWidth: 150}
        ]]
    });


    /**
     * 格式化分配状态值
     *  0 = 未分配
     *  1 = 已分配
     *  其他 = 未知
     * @param state
     */
    function formatproState(proState) {
        if (proState == 0) {
            return "<div style='color: black'>已下架</div>";
        } else if (proState == 1) {
            return "<div style='color: darkturquoise'>上架中</div>";
        } else {
            return "<div style='color: red'>未知</div>";
        }
    }



    function formatauditState(auditState) {
        if (auditState == 0) {
            return "<div style='color: #1b1d21'>拒绝</div>";
        } else if (auditState == 1) {
            return "<div style='color: orange'>通过</div>";
        }
        else if (devResult == 2) {
             return "<div style='color: green'>待审核</div>";
         }// else if (devResult == 3) {
        //     return "<div style='color: red'>开发失败</div>";
        // } else {
        //     return "<div style='color: blue'>未知</div>";
        // }
    }



    /**
     * 格式化分配状态值
     *  0 = 未分配
     *  1 = 已分配
     *  其他 = 未知
     * @param state
     */
    function formatproClassid(proClassid) {
        if (proClassid == 1) {
            return "<div style='color: green'>电子产品</div>";
        } else if(proClassid == 2){
            return "<div style='color: red'>文具</div>";
        }else if(proClassid == 3){
            return "<div style='color: blueviolet'>服饰</div>";
        } else if(proClassid == 4){
            return "<div style='color: skyblue'>其他</div>";
        }
    }


    /**
     * 搜索按钮的点击事件
     */
    $(".search_btn").click(function () {


        var priceMin = $("[name='price_min']").val();
        var priceMax = $("[name='price_max']").val();

        // 在这里对价格区间进行判断
        // 示例：如果最小价格大于最大价格，则进行提示
        if (priceMin !== "" && priceMax !== "" && parseFloat(priceMin) > parseFloat(priceMax)) {
            // 处理价格区间错误的逻辑
            alert("最小价格不能大于最大价格");
            return;
        }


        /**
         * 表格重载
         *  多条件查询
         */
        tableIns.reload({
            // 设置需要传递给后端的参数
            where: {
                //设定异步数据接口的额外参数，任意设
                // 通过文本框/下拉框的值，设置传递的参数
                proId: $("[name='proId']").val()
                , proName: $("[name='proName']").val()
                , proState: $("#proState").val()
                ,auditState:$("#auditState").val()
                , shopName: $("[name='shopName']").val()

                 //,proPrice: $("[name='price_min']").val()

                 //,proPrice: $("[name='price_max']").val()

            },
            page: {
                curr: 1 // 重新从第 1 页开始
            }
        });

    });






    /**
     * 监听头部工具栏事件
     *  格式：
     *      table.on('toolbar(数据表格的lay-filter属性值)', function (data) {
     *
            })
     */
    table.on('toolbar(products)', function (data) {
// data.event：对应的元素上设置的lay-event属性值
        // console.log(data);
        // 判断对应的事件类型
        if (data.event == "add") {
            // 添加操作
            openSalChanceDialog();

        } else if (data.event == "del") {
            // 删除操作
            deleteProduct(data);
        }
    });



    /**
     * 删除
     * @param data
     */
    function deleteProduct(data) {
        // 获取数据表格选中的行数据   table.checkStatus('数据表格的ID属性值');
        var checkStatus = table.checkStatus("productTable");
        // console.log(checkStatus);
        // console.log("-----------");
        //console.log(data);
        // 获取所有被选中的记录对应的数据

        var productData = checkStatus.data;
        // 判断用户是否选择的记录 (选中行的数量大于0)
        if (productData.length < 1) {
            layer.msg("请选择要下架的商品！", {icon: 5});
            return;
        }
// 询问用户是否确认删除
        layer.confirm('您确定要下架选中的商品吗？', {icon: 3, title: '商品管理'}, function (index) {
// 关闭确认框
            layer.close(index);
            // 传递的参数是数组   ids=1&ids=2&ids=3
            var ids = "ids=";
            // 循环选中的行记录的数据
            for (var i = 0; i < productData.length; i++) {
                if(i< productData.length-1){
                    ids = ids + productData[i].proId + "&ids="
                }else{
                    ids = ids + productData[i].proId;
                }
            }
// console.log(ids);

            // 发送ajax请求，执行删除营销机会
            $.ajax({
                type:"post",
                url:ctx + "/product/delete",
                data:ids, // 传递的参数是数组 ids=1&ids=2&ids=3
                success:function (result) {
                    // 判断删除结果
                    if (result.code == 200) {
                        // 提示成功
                        layer.msg("下架成功！",{icon:6});
                        // 刷新表格
                        tableIns.reload();
                    } else {
                        // 提示失败
                        layer.msg(result.msg, {icon:5});
                    }
                }
            });


        });


    }



    function openSalChanceDialog(saleChanceId) {
        // 弹出层的标题
        var title = "<h2>营销机会管理 - 添加营销机会</h2>"
        var url = ctx + "/sale_chance/toSaleChancePage";
        // 判断营销机会ID是否为空

        if (saleChanceId != null && saleChanceId != '') {
            // 更新操作
            title = "<h3>营销机会管理 - 更新营销机会</h3>";
            // 请求地址传递营销机会的ID
            url += '?saleChanceId=' + saleChanceId;
        }

        // iframe层
        layui.layer.open({
            // 类型
            type: 2,
            // 标题
            title: title,
            // 宽高
            area: ['400px', '420px'],
            // url地址
            content: url,
            // 可以最大化与最小化
            maxmin: true
        });
    }


    /**
     * 行工具栏监听事件
     table.on('tool(数据表格的lay-filter属性值)', function (data) {

         });
     */
    table.on('tool(products)', function (data) {

        // 判断类型
        if (data.event == "que") { // 编辑操作
            // 得到营销机会的ID
            var productId = data.data.id;
            // 打开修改营销机会数据的窗口
            //deleteProduct(productId)

        } else if (data.event == "edit") {//删除操作
           // console.log(data.data.proId);
            //     deleteSaleChance(data);
            //
            // }
            // 弹出确认框，询问用户是否确认删除
            layer.confirm
            ('确定要下架该商品吗？', {icon: 3, title: "商品管理"}, function (index) {
                // 关闭确认框
                layer.close(index);
                // 发送ajax请求，删除记录
                $.ajax({
                    type: "post",
                    url: ctx + "/product/delete",
                    data: {
                        ids: data.data.proId,
                    },
                    success: function (result) {

                        // 判断删除结果
                        if (result.code == 200) {
                            // 提示成功
                            layer.msg("下架成功！", {icon: 6});
                            // 刷新表格
                            tableIns.reload();
                        } else {
                            // 提示失败
                            layer.msg(result.msg, {icon: 5});
                        }
                    }


                });
            });

        }

    });


});
